package com.vip.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Knife4j整合Swagger3 Api接口文档配置类
 *
 * @author tianlianyin
 * @date 2024/10/21
 */
@Configuration
public class Kinfe4jConfig {
    /**
     * 创建了一个api接口的分组
     * 除了配置文件方式创建分组，也可以通过注册bean创建分组
     */
    @Bean
    public GroupedOpenApi adminApi() {
        return GroupedOpenApi.builder()
                //分组名称
                .group("app-api")
                //接口请求路径规则
                .pathsToMatch("/**")
                .build();
    }

    /**
     * 配置基本信息
     */
    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI().info(new Info()
                //标题
                .title("学习Knife4j使用的测试开发文档")
                //尿素Api接口文档的基本信息
                .description("后端接口服务")
                //版本
                .version("v1.0")
                //设置OpenApi文档的联系信息，姓名，邮箱
                .contact(new Contact().name("chengxin").email("chengxin@qq.com"))
                //设置OpenAPI文档的许可证信息，包括许可证名称，许可证URL
                .license(new License().name("Apache 2.0").url("http://knife4j.com"))
        );
    }
}
